#include <vector>
#include<unordered_map>
#include<string>
#include <cstdio>
#include <iostream>
#include <ostream>

/*
int main() {
    int N, k=0;
    scanf("%d ", &N);  // 读取第一行的N和k
    int d;
    std::vector<int> arr(N);  // 预分配数组空间
    for (int i = 0; i < N; ++i) {
        scanf("%d", &d);
        if (d>0) arr[i] = 1;
        if (d<0) arr[i] = -1;
        if (d==0) arr[i] = 0;// 逐个读取第二行的整数
    }
    
std::unordered_map<int, int> map;
    map.insert({0,-1});
    int ans = 0;
    int sum = 0;
    for (int i = 0; i < N; ++i)
    {
        sum+=arr[i];

        if (map.find(sum-k)!=map.end())
        {
            ans = std::max(ans,i-map[sum-k]);
        }
        if (map.find(sum)==map.end())
        {
            map.insert({sum,i});
        }
    }

    std::cout << ans << std::endl;
    // 处理数据...
    return 0;
}*/
